<?php

if (isset($_POST['login']) && isset($_POST['pass']))
{
  $data = login($_POST['login'], $_POST['pass'], true);

  if (!empty($data))
  {
    if($data['active']==1){
      User_Session::init($data);

      //mirroring zapytan na drugi serwer
      //include_once 'mirror.php';

      require_once 'pgb/Event/Type/Work.php';
      $work = new Event_Type_Work();
      $work->onEventStart();
      
      
      //godzina logowania uzytkownika
      require_once ('pgb/User.php');
      User::setUserLogTime(User_Session::getUserId(), date("Y-m-d H:i"),1);
      
      header("Location:index.php");
    }
    else{
      require_once ('classes/Application.php');
      require_once('layout.php');
      echo top();
      echo frame_bezmenu(__('Jesteś nieaktywnym użytkownikiem. Skontaktuj się z koordynatorem').Formularz_Logowania());
      echo bottom();
    }
  }
  else
  {
    require_once ('classes/Application.php');
    require_once('layout.php');
    echo top();
    echo frame_bezmenu(__("Nieprawidła nazwa użytkownika lub hasło").Formularz_Logowania());
    echo bottom();
    die();
  }
}

function login($login, $pass, $require_pass)
{
  $login = trim($login);
  $login = addslashes($login);

  $pass = trim($pass);
  $pass = addslashes($pass);

  require_once('init.php');

  $query = "SELECT id, name, rights,active FROM bazkl_users WHERE name='".$login."'";

  if ($require_pass) {
    $query .= "AND password=md5('".$pass."')";
  }

  $result = DBManager::getArrayData($query);

  if (count($result) > 0)
  {
    return $result[0];
  }

  return null;
}


function Formularz_Logowania()
{
  return "<div id=\"loggingDiv\"><form action='index.php?action=swichUser&go=set' method='POST'><br/>

      ".__('Login').": <input type='text' size='30' name='login'><br/><br/>
      ".__('Hasło').": <input type='password' size='30' name='pass'><br/><br/>
    <input type='submit' name='submit' value=".__('Zaloguj')." class='button'>

    </form><div>";


}

function Zmien_Usera_Id($id, $revert = false)
{
  $id = trim($id);
  $id = addslashes($id);

  require_once('init.php');

  $query = "SELECT name FROM bazkl_users WHERE id='".$id."'";

  $result = DBManager::getArrayData($query);

  if (count($result) > 0)
  {
    $data = $result[0];
    $login = $data['name'];

    return Zmien_Usera($login, $revert);
  }
}

function Zmien_Usera($login, $revert = false)
{
  $data = login($login, '', false);

  if (!empty($data))
  {
    if($data['active'] == 1) {

      if (User_Session::getUserId() == $data['id']) {
        return __('Próba zmiany na tego samego użytkownika').':'.User_Session::getUserName();
      }

      if ($revert) {
        User_Session::clearUserData();
        User_Session::init($data);
        return __('Przywrócono oryginalnego użytkownika').': '.User_Session::getUserName();
      }
      else {
        User_Session::switchUser($data);
        return __('Przelogowano na użytkownika').': '.User_Session::getUserName();
      }
    }
    else {
        return __('Wybrany użytkownik nie jest aktywny');
    }
  }
  else {
     return __('Wybrany użytkownik nie istnieje');
  }
}

function Formularz_Zmiany_Usera()
{
  require_once 'pgb/User.php';
  $USR = User::getUserList();
  $USERS = array(0 => '--wybierz--');

  foreach ($USR as $USR) {
    $USERS[$USR['id']] = $USR['name'];
  }

  $content = "<div id=\"loggingDiv\"><form action='index.php?action=swichuser&go=set' method='POST'><br/>".
  __('Wybierz użytkownika lub wpisz jego id dla którego chcesz się przelogować').":<br/><br/>

  Login:
  <select name=\"user_name\">";
  foreach ($USERS as $user_id => $user_name) {
    $content .= '<option value="'.$user_name.'">'.$user_name.'</option>';
  }

  $content .= "</select>
    <br/><br/>".__(lub)."<br/><br/>".
    __('Użytkownik id').": <input type='text' size='5' name='user_id'><br/><br/>
  <input type='submit' name='submit' value=".__('Zaloguj')." class='button'>

  </form><div>";

  return $content;
}

function Wyloguj()
{
  if (!User_Session::isLogIn()) {
    return Formularz_Logowania();
  }

  require_once 'pgb/Event/Type/Work.php';

  try {
    $work = new Event_Type_Work();
    $work->onEventStop();
    $msg = __("Użytkownik poprawnie wylogowany");
    User_Session::clearUserData();  //after event stop
  }
  catch (Exception $e) {
    $msg = $e->getMessage();
  }

  return $msg.Formularz_Logowania();

}
